package cn.wolfcode.luowowo.member.mapper;

import cn.wolfcode.luowowo.member.domain.UserInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(UserInfo record);

    UserInfo selectByPrimaryKey(Long id);

    List<UserInfo> selectAll();

    int updateByPrimaryKey(UserInfo record);


    int selectCheckByPhone(String phone);

    UserInfo selectUserByUsernameAndPasssword(@Param("username") String username, @Param("password") String password);

    /**
     * 根据用户id查询出用户关注id的集合
     * @param id
     * @return
     */
    String selectByFollow(Long id);


    /**
     * 根据用户id集合  查询出用户对象集合
     * @param ids
     * @return
     */
    List<UserInfo> selectByIds(Long[] ids);

    /**
     * 根据用户id查询出所有粉丝的id字符串,以逗号分隔的
     * @param id
     * @return
     */
    String selectFansByUserID(Long id);

    void updateHeadImgById(@Param("fileName") String fileName, @Param("id") Long id);

    /**
     * 用户设置更新信息
     * @param updateUser
     */
    void updateSettingUserInfo(UserInfo updateUser);

    UserInfo getByUserId(Long id);

    /**
     * 查询粉丝字符串
     * @param id 用户id
     * @return
     */
    String getFansCount(Long id);

    /**
     * 给cid增加一个粉丝id
     * @param cid   作者id
     * @param fans    拼接好的字符串,包括新增加粉丝的id
     */
    void updateFans(@Param("cid") Long cid, @Param("fans") String fans);

    /**
     * 没有粉丝的时候,新增一个粉丝
     * @param cid
     * @param s
     */
    void saveFans(@Param("cid") Long cid,@Param("s") String s);

    void updatePhoneById(@Param("phone") String phone, @Param("id") Long id);

    /**
     * 根据用户id查询手机
     * @param phone
     * @param id
     * @return
     */
    int checkPhoneById(@Param("phone") String phone, @Param("id") Long id);
}